package array.newcode;

/**
 * @author Dianzhi Han
 * @version 1.0
 * @description: TODO
 * @date 2022/9/27 16:49
 */
public class JZ5_ReplaceTheBlank2 {
    public String replaceSpace(StringBuffer str) {
        int count = 0;
        for(int i = 0; i < str.length(); i++){
            if(str.charAt(i) == ' '){
                count++;
            }
        }
        int new_length = str.length() + 2*count;
        int old_end = str.length() - 1; //索引老字符串最后一个有效位置
        int new_end = new_length - 1; //索引新字符串最后一个有效位置
        str.setLength(new_length); //设置字符串新大小，防止越界
        while(old_end >= 0 && new_end >= 0){
            if(str.charAt(old_end) == ' '){
            //当前位置是空格
                str.setCharAt(new_end--, '0');
                str.setCharAt(new_end--, '2');
                str.setCharAt(new_end--, '%');
                --old_end;
            }
            else{
            //当前位子不是空格，平移即可
                str.setCharAt(new_end--, str.charAt(old_end));
                --old_end;
            }
        }
        return str.toString();
    }
}
